Method and apparatus for internet-based human network brokering

ABSTRACT

Matches between search queries and potential targets of such search queries are automatically brokered by (i) comparing search criteria specified in the search queries with profile criteria describing the potential targets, and (ii) reporting instances of acceptable correspondence between the search criteria and the profile criteria, provided that access controls associated with the profile criteria of the targets permit such reporting in light of access levels assigned to the Search inquiries. Initiators, using client applications at various remote locations, may formulate the search queries and the brokering may be performed at one or more server locations communicatively coupled (e.g., via the Internet) thereto. The profile criteria may include portions of rich descriptive profiles of the potential targets.

RELATED APPLICATION

This application is a Continuation of U.S. patent application Ser. No.12/757,953, filed Apr. 9, 2010, which is a Continuation of U.S. patentApplication Ser. No. 09/852,336, filed May 8, 2001, which claims thepriority benefit of Provisional Application No. 60/203,374, filed May 9,2000, each of which is incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to a “people-networking” scheme that maybe embodied in computer software and/or hardware and that can becharacterized as both a browser and broker of human networks on theInternet. When used in a computer network environment employing aclient-server architecture, a client-side software application may actas a browser and relationship manager while a server component may actas a broker. When used in a peer-to-peer or distributed serverarchitecture, the broker function can be distributed.

BACKGROUND

In the course of conducting their everyday affairs (whether personal orbusiness), people generally access their networks of contacts forreferrals, information and/or advice. For example, when choosing aphysician, one might check with friends or relatives about pastexperiences with certain doctors. When seeking a new employee, apotential employer will often check with colleagues to see whether theyknow of a suitable candidate. And, when investigating new investmentopportunities, an investor may consult with professional advisors as tothe prospects of the target company.

In each of these and many other examples, an individual's decisions areoften made easier by the advice of trusted associates and friends, butoften that individual finds he or she does not have an appropriatecontact with the information needed to help with a problem or task. Atsuch times, the individual may ask his or her contacts for leads tocontacts in their own “human networks”. This presents a quandary for theperson asked for a referral—namely, whether or not to reveal his or hercontacts to the requestor. By making such revelations, the “connector”may compromise his or her network or expose one or more of his or hercontacts to unwanted solicitations. By not making the referral, however,the connector may risk his or her association with the person seekingthe referral. Whether or not to make the referral often depends upon thedegree of trust that the connector has in the person seeking thereferral and any past experiences in making such referrals to the targetreferee.

Even where the referral is ultimately made, there is no guarantee thatthe referee is going to be a suitable candidate for the originalrequestor's purpose. Thus, the requestor may be forced to track down anumber of leads (many of which may be unsuitable) in the hope of findinga suitable target. This process is rather inefficient, usually becausea) the requestor does not have enough information about the contacts ofhis or her contacts in order to determine which contacts to approach forreferrals, and/or b) the requestor has failed to properly elucidate hisor her requirements and/or because the requestor was not provided withsufficient information regarding the potential target to be able toeliminate him or her from further consideration. In other words, theprofiles of the desired target and the resulting candidates were notsufficiently developed to meaningfully assist in the selection process.

Nevertheless, despite these shortcomings, human networks are central tomost, if not all, value-creating activities and operate at multiplelevels, including personal networks (the personal and professionalcontacts each of us has), organizational networks (links within andbetween organizations), and associations and interest groups (peopleattracted by common values, interests, and goals). Today, manyindividuals may also be regarded as existing online community members,members of organizational networks (independent consultants, alliances,partnerships, consortiums, associations) or employees of small to largecompanies. They engage in human development, organizational learning,training, management, brokering, marketing, sales, trade, research, andconsulting activities, all of which depend, to some degree, oninter-human networks. Such individuals generally understand the value ofcomputer networks as tools for sharing information, but presently theseindividuals have only limited access to tools that can give them an edge(e.g., a competitive advantage) to make better human network connectionson the Internet.

Others have recognized some of these deficiencies and have proposedpartial solutions. For example, U.S. Pat. No. 6,115,709 to Gilmour andWang proposes a method of constructing a user knowledge profile, havingdistinct public and private portions with different access restrictions.In an automated knowledge management system, electronic documents (e.g.,e-mail messages and the like) are collected and each is associated witha user, such as for example the author of the document. Further,confidence levels are assigned to content within these documents andsuch content may be potentially indicative of a knowledge base of theuser. The content is then stored in either the public or private portionof the user's knowledge profile depending upon whether the confidencelevel exceeds, or falls below, a predetermined threshold level. Thepublic portion of the user knowledge profile is freely accessible bythird parties, whereas the private portion has restricted access.Individual users' knowledge profiles may then be accessed (according topublic/private access control restrictions) to determine whether a useris an appropriate candidate for a task (e.g., receipt of an e-mailmessage).

A related patent, U.S. Pat. No. 6,205,472, to Gilmour, describes ascheme for querying a user profile. Access begins with the publicportion of a user's knowledge profile for each of a plurality ofpotential targets of the electronic document. A matching operation isperformed between a document term within the electronic document andpublic knowledge terms within the public portion of each knowledgeprofile to identify a first set of targets for which a match existsbetween the document term and at least one public knowledge term. Thefirst set of targets is published to the originator. Responsive to asecond query from the originator, the private portion of a knowledgeprofile for each of the plurality of potential targets of the electronicdocument is accessed, the private portion of each knowledge profileincluding private knowledge terms indicative of a knowledge base of apotential target of the electronic document. A second matching operationbetween the document term within the electronic document and the privateknowledge terms within the private portion of each knowledge profile isperformed to identify a second set of targets for which a match existsbetween the document term and at least one private knowledge term. Eachtarget of the second set of targets is then prompted for authorizationto be published to the originator.

These two examples of prior schemes for leveraging human networkcharacteristics (in this case a worker's prior access to information ofinterest in a current electronic document) show the benefit of usingautomated means to assist in decision-making processes regarding the useof such networks. However, these schemes do not assist in the forming ofrelationships or introductions among members of disparate human networksnor do they provide for the brokering function discussed above, which iscritical to the exchange of social capital among individuals.

The above-cited patents are not the only examples of schemes thatattempt to address the social networking needs of people. Other schemes,which generally fall into one or more of a few categories, also exist.Among these are access control systems which generally allow onlyintended users to have access to information. Such systems may make useof encryption schemes such as public/private key encryption schemes.

Other methods of access control include the following.

-   -   1. Simple access that is either open or closed. In such schemes,        users who have access to the system can “see” everything. Those        without access to the system can, of course, see nothing. Access        to the system is most often implemented by issuing a password,        and in more rigorous systems also by a means of authentication        using encrypted certificates issued by trusted third-party        certificate authorities.    -   2. Schemes wherein data is separated into public and private        designations. In these systems, users can designate some data        areas as public and others as private. If others request access        to data stored in private areas, the system will deny the        request. Or in other implementations, the system may ask the        user that designated the data as being private in the first        place to decide whether or not to permit the requested access.    -   3. In a variation of the above scheme, data areas may be        designated as either “public” or “private” and individuals are        given either public or private access rights. Anyone can see        public data areas while only persons given private access rights        can see both public and private areas. One organization that        appears to have implemented a scheme that makes use of this        access control model is PeopleStream, Inc.    -   4. Use of multiple access groups to which specific people and        other groups are assigned. This is similar to (3) above, except        the system allows many different kinds of groups to be defined        and applied to different documents, directories, or fields. This        type of system is best managed by a professional system        administrator because it is quite tedious to administer. Users        have to be assigned individually to multiple groups    -   5. Role-based access control. Access groups are defined not just        by specific people but also by specific roles. Whoever currently        has a specific role has the access rights assigned to that role.        This system usually also requires a separate method to        authenticate that a particular person has a particular role.

In addition to access control schemes, other profiling systems do exist.Such systems (e.g., as deployed in Microsoft's Passport and Novell'sDigitalMe) are mainly used as adjuncts to eCommerce technologies andprovide some limited contact book updating capabilities. Also, so-called“expert finding” systems (e.g., as deployed by Abuzz Technologies, Inc.,Tacit Knowledge Systems, Inc. and others) generally lack thesophisticated software agents needed for true social networking andprovide only an enhanced resume finding service. In many of theseservices, access controls to personal information are limited and littleor no verification of user information is provided. Referral networksservices, such as those developed by Peoplestream, ContactMaps, SixDegrees and others, include only limited user profiles and verificationcapabilities.

SUMMARY OF THE INVENTION

In one embodiment, matches between search queries and potential targetsof such search queries are automatically brokered by (i) comparingsearch criteria specified in the search queries with profile criteriadescribing the potential targets, and (ii) reporting instances ofacceptable correspondence between the search criteria and the profilecriteria, provided that access controls associated with the profilecriteria of the targets permit such reporting in light of access levelsassigned to the search inquiries. Initiators, using client applicationsat various remote locations, may formulate the search queries and thebrokering may be performed at one or more server locationscommunicatively coupled (e.g., via the Internet) thereto. The searchcriteria may include portions of descriptive profiles of the potentialtargets. The descriptive profiles may include some or all of anindividual's capabilities, history, values, interests, style, goals,projects, human networks, contacts, profiles of said contacts,employment history, education history, organizational activities,organizations, profiles of said organizations, or compensationrequirements, and indications of the nature and strength of therelationship of the searcher to the target and/or to the target'sorganization.

Further, personal access controls may be set by users and uploaded alongwith their personal profile information to one or more of the servers.When the broker agent matches one user's profile information as a targetto another user's search, the broker agent will then follow theinstructions embedded in the target's access instructions to determinehow or whether the target wants to respond to the search. Such accessinstructions specified in advance by targets may refer to accesscontrols related to the nature of the search and/or to the searcher'sprofile information that the searcher has permitted to be shared withpotential targets. Access controls specified by either the searcher ortargets may permit exchange of information only on an anonymous basis,or with identity revealed. If either searcher or target has includedinstructions to remain anonymous, then the broker agent will enable ananonymous exchange of email between the searcher and target.

In contrast, to the above-noted access control schemes, the presentmethod of access control can best be described as concept-based accesscontrol and has the following advantages over other methods. First, thepresent system makes it relatively easy for users to get started with apre-defined basic set of access groups and corresponding securitysettings, and also relatively easy for users to create moresophisticated access controls by creating new access groups defined byrules that relate to profile elements and indicators or relationshipthat are entered by users. Second, being based on rule-created conceptsthat are defined by data users enter about themselves and about theirrelationships, i.e., profile and contact information, the present accessgroups require less administration, that is, less manual assignment ofspecific people to specific groups.

The present method also enables autonomous determination of access byusers' personal access agents and by network broker agents acting onservers, even in cases where a request for access is coming from aperson whom the protected user does not yet know, or for whom the userhas not yet personally assigned to any access groups. The method alsoenables flexible reuse of access groups as defining concepts inside ofother rules and definitions having multiple potential uses, includinguse in determining access to view profile elements, use in determiningaction that the network broker should take when responding to a searchthat the user matches as a target, and use in constructing criteria todefine desired targets of a search.

The client applications may include search agents configured to assistinitiators in generating the search queries using one or more graphicaluser interfaces. The search agents may perform such assistance byprompting an initiator for information regarding one or more of theinitiator's goals, projects, weighted search criteria, extent of desiredsearch, search context, organization type, or profession.

The brokering function may be performed using broker agents at one ormore of the server locations. Such broker agents may be configured toreceive search instructions within the search queries and to use thesesearch instructions along with the access controls to find matches. Thebroker agents may be further configured to report any matches to thesearch initiators as paths to information regarding the potentialtargets, including reporting paths of relationships between the searcherand the target, such as a personal contact of the searcher who knows thetarget or who has a contact who knows the target.

Further, the broker agents may be configured to search for such matcheswithin user profiles and contact information maintained at the serverlocations or elsewhere. The user profiles maintained at the serversgenerally include portions of descriptive profiles of the potentialtargets, which profiles may include some or all of an individual'scapabilities, history, values, interests, style, goals, projects, humannetworks, contacts, profiles of said contacts, employment history,education history, organizational activities, organizations, profiles ofsaid organizations, or compensation requirements. These user profilesmay also include or be associated with the above-mentioned accesscontrols.

In some cases, the broker agents may be configured to search for anymatches according to degrees of trust between contacts, or othermeasures of relationship, as specified through the user profiles.Furthermore, the broker agents may be set to report verificationinformation for any matches, such verification information being derivedusing verification agents located at the server locations. When used,the verification information should be editable only by the verificationagents.

Different search strategies may be employed. For example, the brokeragents may be configured to search for matches by beginning withcontacts of the initiators and working outward to find potential targetsor connectors to potential targets. Alternatively, or in addition, thebroker agents may search for matches by beginning with potential targetsand working backwards to find connectors to the search initiators. Inother cases, the broker agents may be configured to search forconnectors between such initiators and any potential targets, so long asthe connectors have suitable access levels to permit reporting of anysubsequent matches in light of any applicable access controls.Connectors may include contacts of the potential targets, contacts ofthe initiators, contacts of specified degree of the initiators orpotential targets, profiles of organizations of the initiators,organizations of the initiators, or trusted connection paths between theinitiators and any potential targets.

In a further embodiment, a computer network includes one or more clientsconfigured with client applications, and one or more serverscommunicatively coupled to some or all of these clients and to one ormore of each other. The client applications are each configured topermit users thereof to initiate search queries for potential targetsspecified by profile criteria (e.g., including some or all of anindividual's capabilities, history, values, interests, style, goals,projects, human networks, contacts, profiles of said contacts,employment history, education history, organizational activities,organizations, profiles of said organizations, or compensationrequirements). The servers include a network broker configured to searchfor matches between the search queries and potential targets thereof bycomparing search criteria specified in the search queries with theprofile criteria describing the potential targets and reportinginstances of acceptable correspondence between the two where accesscontrols associated with the profile criteria of the potential targetspermit it, in light of access levels assigned to the search inquiries.

The client applications may be further configured to permit usersthereof to initiate such search queries through one or more graphicaluser interfaces. In addition, users may be permitted to create and storeprofiles of themselves and their contacts, these profiles containingsome or all of an individual's capabilities, history, values, interests,style, goals, projects, human networks, contacts, profiles of saidcontacts, employment history, education history, organizationalactivities, organizations, profiles of said organizations, orcompensation requirements. The users may restrict access to theseprofiles using the access controls and any or all of these profiles maybe uploaded to one or more of the servers. These uploaded copies of theprofiles may then be used by the network broker when searching formatches.

The network broker may be configured to report any matches to the usersas paths to information regarding potential targets. In general, thenetwork broker receives search instructions within the search queriesand uses these instructions, along with the access controls, to find thematches. The network broker may search for matches according to degreesof trust between contacts as specified through the target profilecriteria and may also report verification information for any matches.Alternatively, or in addition, the network broker may search for matchesby beginning with contacts of the users and working outward to findpotential targets or connectors to potential targets, and/or bybeginning with any potential targets and working backwards to findconnectors to the users. Further, the network broker may be configuredto search for connectors between users and potential targets, so long asthe connectors have suitable access levels to permit reporting of anymatches in light of the access controls.

Any or all of the above methods may be embodied as computer-readableinstructions on computer-readable media for use by computer systems.This may include physical media, such as CD-ROMs and the like, or othermedia, such as packetized communications transmitted by electricalsignals over communication links, both wired and wireless.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and notlimitation, in the figures of the accompanying drawings in which likereference numerals refer to similar elements and in which:

FIG. 1 illustrates a network of computer-based components configured asclients and servers in accordance with an embodiment of the presentinvention.

FIG. 2 illustrates a software architecture for client and servercomponents of a Internet-based human network brokering scheme configuredin accordance with an embodiment of the present invention.

FIG. 3 illustrates one example of a process of human network brokeringas performed in accordance with an embodiment of the present invention.

FIG. 4 illustrates an example of a user interface for a search agentconfigured in accordance with an embodiment of the present invention.

FIG. 5 illustrates a further example of a user interface for a searchagent configured in accordance with an embodiment of the presentinvention.

FIG. 6 illustrates one example of a user interface for adding projectinformation to a personal profile of a client application configured inaccordance with an embodiment of the present invention.

FIG. 7 illustrates one example of a contact list for use with a clientapplication configured in accordance with an embodiment of the presentinvention.

FIG. 8 illustrates one example of a search result table which may bereturned in response to a request for such information in accordancewith an embodiment of the present invention.

FIG. 9 illustrates one example of a detailed search result descriptionwhich may be displayed in response to a request therefor in accordancewith an embodiment of the present invention.

DETAILED DESCRIPTION

A scheme for brokering human networks over a computer network that mayuse a client-server paradigm is disclosed herein. Although discussedwith reference to certain illustrated embodiments, upon review of thisspecification, those of ordinary skill in the art will recognize thatthe present scheme may find application in a variety of systems.Therefore, in the following description the illustrated embodimentsshould be regarded as exemplary only and should not be deemed to belimiting in scope.

Some portions of the detailed description that follows are presented interms of algorithms and symbolic representations of operations on datawithin a computer memory (e g., using flowcharts and the like). Thesealgorithmic descriptions and representations are the means used by thoseskilled in the computer science arts to most effectively convey thesubstance of their work to others skilled in the art. An algorithm ishere, and generally, conceived to be a self-consistent sequence of stepsleading to a desired result. The steps are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,objects, symbols, characters, terms, numbers or the like. It should beborne in mind, however, that all of these and similar terms are to beassociated with the appropriate physical quantities and are merelyconvenient labels applied to these quantities. Unless specificallystated otherwise, it will be appreciated that throughout the descriptionof the present invention, use of terms such as “processing”, “computing,“calculating”, “determining”, “displaying” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices. The variousobjects, data structures, algorithms, etc. described herein may bestored as computer-readable instructions on computer-readable media inthe conventional fashion.

The present brokering scheme includes an Internet-based socialnetworking tool for online communities, professional networks, andcorporate intranets. Social networks are networks of people connected bytrust, shared values, and mutual need for cooperation. Socialcommunities, cooperative business relationships, and professionalassociations are all examples of social networks. The present systemcreates social networks to find partners, clients and people with sharedinterests and values. This system is also used to share knowledge, buildand strengthen communities, build teams, and map and analyze complexorganizational networks.

Information networking tools now available on the Internet areinadequate to serve the needs of social networks. As exemplified by theabove-cited U.S. patents, information networking tools, including toolsfor “knowledge management”, currently look for relationships betweenwords. But social networking tools have to also reveal relationshipsbetween people in order to provide real value. This is why a directoryof people and their expertise is generally not enough to evaluate apotential relationship. For most important relationships—potentialpartners, significant clients and suppliers, etc.—more information isneeded to establish trust, mutual values, and other forms ofcompatibility. And, yet, since some of this information is personal orproprietary, social networking tools also have to ensure privacy andprotection.

The present system resolves this apparent contradiction (between theneed to reveal sufficient information about one's self and/or one'scontacts to enable intelligent decision making and the desire to protectsuch information from unintended or undesired disclosure) with a designthat combines extensive knowledge of social networks with softwareagents. Working together, the present tools provide for rich profiling,access control, verification, and network brokering to assure thatprivacy will not be compromised and that matches will be accurate andvaluable to both parties.

Within and using the present brokering scheme, users are able to:

-   -   Quickly narrow the choices in finding and evaluating new        partners, clients, colleagues, suppliers, employers, employees,        investors, advisors and information sources, and people with        shared interests and values by learning enough about them to        properly evaluate their potential.    -   Get recommendations and introductions from a trusted source to        build extended networks based on trust and value.    -   Screen incoming information and requests and maintain privacy        when desired.    -   Connect with more of the right people to foster new        relationships

The present brokering scheme offers users a rich environment to createand maintain all types of human networks supported by onlineinteractions. When used in a client-server paradigm, the client-sidetool may be embodied as a Java™ application or a Java applet that workswithin a conventional Web browser (e.g., Microsoft's Internet Explorer™and/or Netscape's Navigator™ or Communicator™), thus offering a richprofiling environment for sharing information. The corresponding Webapplication server may then be made up of access agent and networkbroker intelligent agents (again based on Java technology) that aretrainable to emulate the functions of a human broker, making highlyaccurate matches while protecting personal privacy. Of course, otherembodiments may make use of other programming languages, such asconventional HTML or other languages.

Java is a form of an object-oriented (i.e., focused on data and theinterfaces to it), dynamic programming language for computer systemsdeveloped by Sun Microsystems of Mountain View, Calif. Java has anextensive library of subroutines for coping with TCP/IP (transmissioncontrol protocol/Internet protocol) protocols like HTTP (hypertexttransfer protocol) and FTP (file transfer protocol). Thus, Javaapplications can open and access objects (i.e., data) across theInternet (or other computer networks) via URLs (uniform resourcelocators, also known as web addresses) similar to the way other softwarecan access a local file system. Because Java was designed to supportapplications on networks, which may be composed of a variety of systemswith a variety of central processing unit (CPU) and operating systemarchitectures, all Java programs are compiled to an architecture- orplatform-neutral object file format. Thus, the compiled code isexecutable on many processors.

A. System Operation and Architecture

Before describing the features of systems which incorporate the presentinvention in detail, some background is helpful. In one embodiment, thebrokering system operates as follows: Initially, users create richprofiles (e.g., of themselves and their contacts) needed for greatervisibility and more accurate matching and evaluation of new connections.These profiles may be created using a profile builder application andmay be both locally stored (e.g., on a user's personal computer) and/oruploaded on one or more application servers that may reside on anintranet or a Web server for an online community. Users instruct theirpersonal access agents to control access to their own personal profilesand a personal search agent to find desired connections. A networkbroker agent operating on the server(s) is then used to evaluate matchesand broker relationships. All parties can trust the broker to followtheir instructions regarding the match desired and the degree of privacydesired. Other embodiments may be deployed as part of a peer-to-peerenvironment or other computer network. Note that as used herein the term“server” (and personal host and central server) is meant to include anycomputer system when a system which includes the present inventionoperates in a peer-to-peer configuration.

This scheme offers a method and framework for matching people'sinterests and building personal connections to the right people andinformation they value. Getting the right person's attention is whatreally matters and is a necessity for creating almost any type of value.However, in the real world, the factors that influence individual andgroup attention are very complex. The software agents employed as partof the present brokering scheme build on the complexity of humanrelationships in ways that are transparent to the user.

The brokering scheme also addresses the flip side of attention-gettingby protecting personal privacy. Maintaining user privacy is an importantissue on the Internet and is likely to continue to grow in importance asmore and more people conduct online transactions. The brokering schemeaddresses privacy concerns by managing access to attention because thescheme is based on the understanding that the more visible it ispossible for a user to be, the more it becomes necessary for that userto be selectively visible.

To better understand these features, consider first the illustrationshown in FIG. 1. In this figure, a network 10 includes a number ofclients 12 and servers. The servers may be divided among primary hosts14 and central servers 16. Primary hosts 14 may serve a number of localclients 12 while central servers 16 may interconnect a number of primaryhosts 14 and/or serve various remote clients 12. Although only a limitednumber of clients 12, primary hosts 14 and central servers 16 are shownin this diagram, it should be understood that any number orconfiguration of these computer-based components may be used in variousembodiments of the present invention. Further, some or all of thesecomponents may exist on mobile platforms, such as handheld computersystems and the like, and in peer-to-peer platforms. The network 10 maybe a portion of a much larger computer network or networks, such as acorporate enterprise network or even the Internet. The clients 12 andvarious servers 14, 16 may be combinations of hardware and/or softwareconfigured in accordance with the teachings presented herein and the useof any specific programming language(s) and/or hardware platform(s) isnot critical to the present invention.

From the diagram, it should be clear that various intercommunicationsamongst network elements might take place. For example, communicationbetween clients 12 and primary hosts 14 are quite common, as arecommunications between primary hosts 14 and central server 16. So tooare communications between various primary hosts 14 contemplated, as arecommunications between central server 16 and clients 12. Indeed, evenpeer-to-peer communications between clients 12 are contemplated withinvarious embodiments of the present invention. The types of communicationlinks that support these communication paths are not critical to thepresent invention and may include both wired and wireless communicationlinks, with appropriate communication protocols. Further, the specificrouting protocols that are used to ensure delivery of the messages amongthese network elements are not critical to the present invention and anyappropriate routing protocols (e.g., TCP/IP, AppleTalk, etc.) may beused.

FIG. 2 illustrates one embodiment of a software architecture forsupporting the methods of the present invention. As shown, client 12includes a client application program 18, which may make use of aconventional Web browser 20, as discussed above. The client application18 includes a personal profile builder 22, a personal gatekeeper (or“access agent”) 24 and a personal search agent 26. Each of thesecomponents is discussed in greater detail below. The client application18 may reside in on-board storage 28 (e.g., main memory and/or a harddrive or other long-term or non-volatile storage device), and thisstorage unit may also be used for temporary storage of variables, etc.in the conventional fashion. The server-side software (which may residein primary hosts 14 and/or central servers 16) includes a conventionalWeb server application 30 (e.g., to manage http requests and otherconventional Web server functions) and an application server 32 (which,as indicated above, may be based on Java programming technology).Application server 32 includes various elements, such as search agents34, access agents 36, network broker agents 38 and verification agents40. Each of these agents is discussed in greater detail below. Servers14, 16 also include (and/or have access to) one or more databases 42which communicate with the http server 30 and the application server 32and provide storage facilities for these applications. The types ofinformation stored in database 42 by the application server 32 aredescribed below. For example, these databases 42 may contain a secure,composite data structure that maintains information about all users ofthe system plus a record of prior searches and matches, which thenetwork broker agent 38 can access to learn and reapply successfulsearch strategies.

Many components of the present system may be embodied as Java applets orapplications to maintain the richness of an object-oriented approachwhile using a conventional web browser and HTML (hypertext mark-uplanguage) and XML (extensible markup language) as the delivery platformfor the user interface. For compatibility with Java-based interfaceagents that might be delivered through the user interface, Javaapplication server 32 should dynamically generate the HTML (“compiledHTML”). There should be a high capacity database on or accessible to theserver 14, 16, and more limited “persistent store” capabilities on theclient-side 12.

1. Client Application

The client application 18 may be distributed as a package (e.g., oncomputer-readable media or through electronic download) containing thevarious agents (and a browser, if needed), to be installed in a registry(or similar) portion of the user's personal computer (or otherWeb-capable appliance) operating system, and stored in a nameddirectory. An alternate version of the client application may also bedistributed as an HTML/XML interface residing in the server application14, 16, and accessed by the user through a Web browser. A basic objecthierarchy for the client application 18 is shown below.

InterfaceToUser

-   -   This object (although not shown in detail in FIG. 2 as it may        make use of components of the Web browser 20) may contain the        intelligence described herein for interacting with users to        create profiles and search queries and also the interface        objects needed to communicate with the local database 28.        Examples of graphical user interfaces, which may be generated        and displayed using conventional computer graphics rendering        techniques, are described elsewhere in this specification

Local DB

-   -   This is the mapping for the local database 28. Sections of the        database may include:    -   UserStatus. Described above as information regarding completion        status of the user profile, and a record of user behaviors and        preferences which other objects may make use of to make the        user's experience easier and more rewarding, etc.    -   OrgProfile. The organization profile may be completed once for        each organization and may be accessible to each user's client        application 18 in that organization. This profile may be        completed by a single person or contributed to by multiple        people. Some information included in the profile may be        dynamically added by the brokering system itself, based on        collective responses of organization members. Sections of the        organization profile may include:        -   Capabilities, History, Values (e.g., Culture, and            Basic_values), Goals, Projects (e.g., collected from member            profiles, can also be added by a system administrator),            Networks (e.g., collected from member profiles, can also be            added by a system administrator; subcategories may include            Profile_Of_Networks, Contacts (both Internal and External),            and Resources)    -   PersonalProfile. The sections of the Personal Profile may be        very similar to the OrgProfile. Both objects may inherit        attributes from an abstract Profile class. The sections of the        PersonalProfile may include:        -   Capabilities, History, Values (e.g., Interests, Style and            Basic_Values), Goals, Projects, Networks (e.g.,            Profile_Of_Networks.    -   Contacts, ContactProfiles (This database may store profiles of        the user's contacts that were either entered by the user or        downloaded from a server 14, 16. If the profile was downloaded        from a server 14, 16, the profile may contain a link to the copy        of the profile stored on the server so that the profile can be        updated when it is accessed (as allowed by the profile owner's        access agent)).    -   Access Agent (This database stores general and specialized        access instructions and a log of access agent actions and user        responses to these actions (e.g., satisfaction, correction,        etc.). These will be used to train the access agent 24. Note:        The access and security codes (if any) used by the access agent        24 may be stored in the user's Profile).    -   Searches (This database may store prior search parameters,        results, and user responses to results so that searches may be        reused, modified, and improved).

InterfaceToServer

-   -   This component (not shown in detail in FIG. 2 as it may utilize        components of Web browser 20) will allow a user to upload        profile sections and agent instructions to the server 14, 16 and        download results and other communications therefrom. A database        replication and file optimization scheme may also be included.        The interface to the server 14, 16 should be closely connected        to the client-side access agent 24 to allow for the access        control described herein.        a. Profile Builder

The personal profile building agent 22 guides users in the process ofbuilding the type of rich profiles discussed above, which are mosteffective when related to their objectives. The present method alsomakes it more likely that people will create profiles that will beuseful to themselves and others, by making it easy for them toincrementally add to their profiles based on their immediate andchanging objectives and personal styles of working. Stated briefly, theprofile builder 22 is a tool (e.g., a software application or component)that helps users (i.e., people and organizations) reveal theircapabilities, projects, goals and values so that others can adequatelyfind and evaluate them. The profile builder 22 is rich and customizable,and may operate interactively, asking people what they want toaccomplish, and then helping them build a profile that can accomplishthose goals. Each user has control over what goes into his or herprofile, who has access to it, and what networks to connect it to. Thisis significant because in order to make good connections it is asimportant for others to evaluate a user as it is for that user toevaluate them.

In the client application version, this locally stored applicationconducts a dialog with its user to build the rich profiles off-line.Data resulting from this dialog is stored in the local database 28(e.g., a portion of persistent memory of the user's personal computer).In the HTML interface version of the client, all user activity willoccur online and data will be stored only on the server. In either case,the resulting database may be encrypted or otherwise secured againstprying eyes and file theft. In the client application version, the“local access agent” 24 ensures that only data that the user hasdesignated to be shared gets uploaded to the server 14, 16. Searchqueries may also prepared off-line, before being uploaded to interactwith the server's broker agent 38.

The profile builder may also permit users to generally describe their“relationship networks” in addition to adding specific contacts who aremembers of their relationship networks. These are networks of contacts,clients, partners, and others with certain, specified expertise,industry affiliations, locations, professions, personal or socialinterests, or any other user-defined criteria. The use of relationshipnetworks help users better understand and evaluate their own networks,make it possible for other users to search for and evaluate potentialtargets, based on the types of networks they have, and helps othersystem users search for likely connectors to potential targets, evenwhere users have not yet entered all of their specific contacts. Dataretained in relationship network portions of a profile and relatedcontact information may be automatically updated (e.g., usingconventional database reconciliation methodologies) whenever usersconnect to a primary host 14 or a central server 16. That is, profileinformation of other users that are within a user's relationship networkmay be automatically updated so as to ensure a user always has a mostrecent copy of the other users' profile information. Of course, suchautomated updating may be subject to the same types of access controlsdescribed herein.

As part of a relationship management section, users may undertakeactivities to manage this section, including importing or manuallyentering contact records, adding hyperlinks to connect to, import fromand browse accessible parts of profiles created by their contacts,describing relationships to their contacts, viewing graphical displaysof information concerning their contacts (including, perhaps, therelationships of contacts to one another), keeping notes on interactionswith said contacts, and other relationship management activities.

A relationship management agent (which may be a part of the profilebuilder) may continually analyze a user's interactions with his/hercontacts (e.g., by monitoring email communications, various searches andresults, through user notes, etc.) in order to determine the importanceand nature of these contacts. This will provide for advanced contactmanagement. Thus, contacts may be automatically categorized (usingvarious criteria) and such categories dynamically updated in response tochanges in a user's profile, a contact's profile, etc.

Profile information may also be updated according to a user's currentprojects and other business or personal information. Thus, within theprofile builder 22 one or more sections may be designated for a user todescribe current or ongoing projects and to include in these projectareas information related to the kinds of skills and abilities and othercharacteristics they are seeking for project team positions (andcorresponding open positions) and, optionally, links to the profiles ofsystem users that may be filling current team positions. Suchinformation may then be used to launch searches for new team members.

As demonstrated by the example below, it is important for the userinterface to respond to differences in user objectives, style andcontext, and to changes in these factors over time. To accomplish this,users may be queried on their objectives and preferences in theirinitial session with the client application 18 (e.g., in an “orientationinterview” conducted by/through the user interface to the profilebuilder and/or search agent) and/or in subsequent sessions. Advancedfunctionality may also include monitoring a user's behavior to detectstyle and preferences. Information about user objectives and preferencesmay also be stored in the local database 28, along with the user'sprofile completion status, information about how the user has used thebrokering system in the past and results of such use, and possibly alsothe user's satisfaction with the results.

Information about the user's objectives and context (e.g., industry orprofession, country, etc.) may be used to select and customize promptsto present to the user, and (in some embodiments) to make suggestions oroffer information to the user. For example, information collected on theuser's organization type and profession may be used to select promptvariants. Information on the user's objectives may be used to guide theuser to complete sections of the profile that will be most necessary forachieving those objectives, and to optionally skip sections that are notessential for his/her objectives. Information on the user's completionstatus may also be used, alone or along with user objectives, to guidethe user to complete the next most important section when s/he logs innext. User completion status may also be used to reward users forprofile completion and for the value that this provides to other users.

In addition, the profiles may include “knowledge-sharing” sections.These sections enable knowledge sharing and searching for knowledge bysystem users. Users may record important knowledge resources such as webaddresses, books, journals, databases, and files, any or all of whichmay be associated with and hyperlinked (or otherwise linked) to portionsof their profiles. The user may then allow partial or full access tothese resources, allowing for searches on knowledge-based criteria. Insome cases, a separate “knowledge profiling agent” may be used tofacilitate such searches and/or to automatically profile and categorizesuch knowledge resources among system users.

The interface may also respond to differences in people's style andpreferences. For example, a task-focused person who wants to cut to thechase and solve an immediate problem may get a more minimal set ofinitial questions than, say, a more curious or expressive person whowants to carefully construct his/her profile. In the case of thequick-start person, the interface may cut the orientation and profilebuilding to a minimum and quickly find what the user wants to do. Forexample, if the user wants to find a particular type of contact, insteadof asking him/her a lot of questions about himself/herself, a searchprofiling agent 26 may ask the user simply to profile the person s/hewants to contact. This will get the user familiar with the basicelements of a profile. Then the search profiling agent may remind theuser that that person s/he is looking for will probably need to knowsome things about him/her. This will give the profile building agent atask-focused reason to get the user to start profiling himself/herself.Then, in later sessions, the profile building agent can gradually promptthe quick-start user to fill out more of his/her own profile. Forexample, when results come back from a search and a good prospect wantsto know more about the user, then the user will have to reveal moreinformation in order to complete that connection.

This type of personalization generally requires an intelligent, dynamicand non-linear interface. The present brokering system includes softwaretools that contain the intelligence (rules, etc.) needed to respond touser preferences, context, and objectives. Since each question presentedto the user in each profile section will be an object, the interface maydynamically select which questions and prompts to display, how to numberthem, etc., based on accumulated information stored in the localdatabase 28.

b. Personal Access Agent

This tool allows users to protect the information in their profiles andtheir attention from inappropriate access, and makes these personalprofiles connectable. For example, the client access agent (“PersonalGatekeeper”) 24 ensures that data marked with an access code for useonly by the owner thereof, will not be shared with the server 14, 16.The client access agent 24 will also respond to requests by the server14, 16 for information stored only in the local database 28, or forspecialized responses to search results (e.g., requests for additionalinformation or actions by the user). Advanced functionality in someembodiments may include the ability to filter all types of incominginformation and requests for the user's attention, including email. Theaccess agent 24 may also be trainable—learning from both directinstructions by its owner and by “observing” its owner's behavior.

Personal access controls that put control over access to personalinformation in the hands of the user, not a centralized systemadministrator, are also provided. In other systems, a systemadministrator usually controls access control, for the purpose ofprotecting the organization, not for protecting individual users. Thepresent brokering system, however, may utilize a set of default securityvalues for different profile sections. Users can then adjust thesedefaults before they begin to complete their profile, and also as theybuild and edit the profile, thereby giving instructions to their accessagents 24 on how to protect those profile sections. The users are alsoable to give a security value to a particular detail within a profilesection that will override the default section security value. Inaddition, users are able to customize the default security values byadding additional conditions or rules. The end result is that differentsections of a user's profile may have different security codes and/orrules attached thereto, making it easy to share only certain parts ofthe profile with certain types of people/agents.

The system of security values is matched by a method of applying accesscodes to individuals, organizations, or groups defined by customizablesets of criteria. Users are able to access any parts of another user'sprofile or other protected information that have a security value equalto or lower than the access code that the creator has assigned to them.The personal access control or gatekeeper agent 24 is also able toautonomously determine the level of access to give a party previouslyunknown to it. Other systems require that all parties, or theirorganizations, be specifically identified with an access level inadvance.

In addition, the present personal access control agent 24 is also ableto autonomously interact with other agents, including the network broker38, and with other users or their agents, via the network broker 38.Other systems of access control lack this type of autonomousinteraction.

Building on the above, the present access and security controls may bestbe described as a “concept-based” methodology. This enables the use ofsophisticated autonomous software agent technology, whereby the agentsare able to autonomously a) make use of pre-defined concepts toconstruct and apply new concepts in appropriate ways, and b) discoverrules defining new concepts by observing user patterns of behavior.

One embodiment of the present invention may utilize two sets ofpre-defined access groups and security settings. The first set is anon-editable “basic” set of access groups that correspond toprogressively more restrictive basic levels of security, for example,“Public”, “Low”, “Medium”, “High”, “Highest”, and “System Only”. Thisbasic set of access groups and corresponding security settings,described in more detail below, are designed to be useful for a majorityof access and security purposes and to be quickly usable and easilyadministered by new users.

The second set of pre-defined access groups refer to generalized groupsof people for whom many users are likely to want to give special accessrights. For example, these may include “People in my employingorganization”, “Clients”, “Potential Client's”, “Trusted ProfessionalOrganizations”, “Trusted Social Organizations”, etc. Users are free toedit the rules defining these pre-defined access groups in order to makethem more sophisticated or more inline with their own needs. In additionto pre-defined access groups, the system allows users to createcustomized and sophisticated new access groups and to use these todefine new security settings.

The basic access settings may be labeled “Public”, referring to otherswho have no special level of access and who can access only data that isopen to anyone; “Low”, referring to people whom the user may or may notknow but for whom the user has some reason to want to give access todata that has a “Low” basic level of security; “Medium”, referring topeople whom the user may or may not know but who are members of groupsthat the user trusts enough to give access to data that has a “Medium”basic level of security; “High”, referring to people whom the user knowswell, and trusts enough to give access to data with a “High” basic levelof security; and “Highest”, referring to people who are the user'sclosest and most trusted contacts and who have access to the “Highest”basic level of security. The system also includes a special basicsecurity setting that may be labeled “System Only”, referring to datathat no human is allowed access to and which may only be accessed by thenetwork broker agent acting on the user's behalf and programmed tofollow the user's access instructions. It should be understood that theactual labels for the basic access and security settings might vary fromthe labels used in this description.

This system has the advantage of giving a profile section or item asingle basic security setting that will allow access to all persons whohave been determined to have a basic access setting that is equal to orhigher than the item's basic security setting. For example, a personwith a “High” basic access setting will have access to any data that isprotected by a basic security setting of “High”, “Medium”, “Low”, or“Public”.

In any case where the user believes that use of one of these basicaccess groups and security settings is insufficient to protect any dataitem, the user may use one of the pre-defined access groups to define acorresponding security setting; or may create a customized access groupand corresponding security setting.

All of these access groups, that is, the basic access groups, otherpre-defined access groups, and user-created access groups, and allcorresponding security settings are defined by either simple or complexrules relating to elements in people's profiles, and to the indicatorsthat users select to indicate their relationship to their contacts andto other people who may or may not yet have a profile in the system.This enables these access groups to a) refer to people whom the user mayor may not know, b) be automatically applied and updated based on thedefining rules, c) be thereby autonomously applied by the user's accessagent acting on the client or by the network broker acting on a serverto determine access for people whom the user may not yet know or forwhom the user has not yet personally assigned to an access group.

Each access group in the system can be conceived of as a sophisticatedconcept that defines a particular group and a corresponding reason forgiving access or triggering some other type of action. Any access groupcan thus be used a) as a concept to define another access group, or b)to be used inside of a rule to define a complex security setting, or c)to be used inside of a rule to define a condition that should cause thenetwork broker to perform an action on the user's behalf, such as makinga particular response to a search, or d) as part of criteria definingthe targets for a search. Likewise, any search criteria that have beensaved can also be used, in whole or in part, to define an access group,or for any other use of a concept, as previously described. This is whythe method of access and security that is part of present invention isdescribed as “concept-based access and security”.

c. Personal Search Agent

Search agent 26 is a tool that guides a user in constructing a profilefor a search target. Examples of the use of search agent 26 and itscorresponding features are presented below.

2. Server Application

Having thus explored the client-side of the present system, theserver-side thereof will now be examined. More than one server may beused, for example a broker server and a database server may be separateentities, even if hosted on a common platform 14, 16. As explainedabove, the broker server may be a Java application server 32 thatincludes or operates with an HTTP server 30, dynamically serving HTMLcontent and associated Java applets to the client 12. It may also hostJava applications that serve the functions of broker server-side agents,including the search agents 34, network broker agents 38,user-instructed access agents 36 and verification agents 40. It should,preferably, interface in a secure fashion with the database 42.

Client applets (e.g., as discussed above) may be stored on the Javaapplication server 32 and delivered to the client 12 on demand in thecontext of HTML pages. Since these applets may also be stored on theclient 12, the server 14, 16 should query the client 12 to determinewhether or not the most current version of the applet is present on theclient 12 and, if not, provide it.

The application server 32 communicates with associated data structuresin database 42 when a client 12 passes new information to be storedtherein, and updates the server-side access agents (“Gatekeeper Agents”)36 for that user with new instructions for maintaining secure access tosuch information. Thus, portions of the user's profiles and accesscontrols therefor may be replicated at database 42 for use by server 14,16. The application server 32 also accepts instructions from searchagents 26, 34, and communicates these instructions to the broker agent38 during a search process. Upon being notified of a successful match tothe criteria of the search, the server 14, 16 communicates back to theclient 12 regarding the successful path to the repository of theinformation (e.g., another server or client) or contacts that satisfythe search. It is desirable that the server 14, 16 be able to requestnew information (not currently stored in an accessible database 42) fromthe clients 12 to determine whether a match is possible based oninformation not yet shared by one or more clients 12; this couldconceivably lead to human user intervention and negotiation towardsselective release of the information.

Most of the server-side data structures may be stored on the databaseserver 42. The database server 42 may include some or all of thefollowing components:

UserDB

-   -   This database may store all the profiles and instructions        uploaded by system users. Database sections may include:        User_Profiles, Access_Instructions, and Search_Instructions. As        these names imply, the User_Profiles section is a collection of        duplicate of the portions of the uploaded user profiles created        using the profile builder 22. Access Instructions is a replica        of the access restrictions and instructions imposed by users on        their personal profiles and those of their contacts. These rules        are used during a search by the network broker 38 to determine        how much or how little information to reveal to a searcher        regarding an identified target. Search_Instructions is a store        of the rules and other instructions to be followed by the        network broker 38 during a search.

SearchResults

-   -   This database may store results of searches to be used by the        network broker 38 in refining and reapplying any successful        search strategies. Personal search agents 26 operating on the        clients 12 may also access this database in order to recommend        search strategies to the users and prompt for information needed        by these strategies.

ExternalServerIndex.

-   -   This may be a database that will help a server 14,16 extend        searches (e.g., using search agents 34) to external servers. As        the number and locations of servers 14, 16 proliferate, a system        to index all profiles on the extended system of servers may be        useful in order to direct extended searches from one server to        another.

a. Search Agents

The server-side search agents 34 are similar to the client-side searchagents 26 and assist in creating search queries and the like. The searchagents operate in conjunction with the network broker 38 to locatetargets that satisfy the search queries. Further details regarding theseagents are presented below.

b. Access Agent

The server-side access agents 36 are duplicates of the individual clientaccess agents 24 and evaluate any request delivered by the networkbroker 38 to determine what information (if any) may be releasedregarding a corresponding user/contact. This will be the case inresponse to both searches and browsing functions initiated by clients12. The server-side access agent 36 may also request any additionalinformation it needs from its corresponding client-side access agent 24or the users thereof in order to better evaluate what access level togive to a request.

c. Network Broker

The network broker 38 works in two ways. First, it works by emulating ahuman broker. Multiple parties give human brokers confidentialinformation because they are trusted to never reveal the informationwithout permission of the owner or to only reveal portions of theconfidential information the broker knows would be permissible.Likewise, the network broker agent 38 can access confidentialinformation regarding system users and/or their contacts and use it tomake highly accurate matches, but will only reveal the information whengiven permission by each user's personal access or access agent 24. Inoperation, the network broker 38 searches the User_Profiles database tolook for matches against the criteria specified in search parameterssent by a client 12. It then evaluates the closeness of fit to thesearch parameters for any retrieved entries. If the search parametersspecify connection criteria, such as level of trust, type of connection,etc., then the network broker 38 may have to discover and evaluateconnection paths between the searcher and the prospective target. Foreach prospective target found, the network broker 38 should ask for and(if warranted) receive permission from the target's server-side accessagent 36 for release of the requested information, which may then betransmitted to the requesting client 12. This process tends to preservethe trust relationship of a human broker.

Second, the network broker 38 can follow links based on trust, in thesame way that people do when they are “networking”—except of course theautomated network broker 38 can do so much more quickly and efficientlythan a human being. As shown in FIG. 3, when people network, theynaturally start with some idea of a target candidate (step 44) and thenlook to the people they trust (their contacts) and ask for trustedreferrals (step 46). Often they then also talk to the referrals (step48) and ask them for trusted referrals (and so on until candidates areidentified). Each candidate then has to be evaluated (step 50) and thisprocess is repeated until all leads are exhausted or a suitablecandidate is found.

Each step in this process involves a link of trust, and so the processis much safer (and, hopefully, productive) than simply looking in adirectory. The present networking system can semi-automate this process,and also speed it up tremendously. Other networking systems currentlyavailable through the Internet (e.g., those deployed by PeopleStream asdiscussed above) have portions of this process available, but lackcritical features to make the process really work, including richprofiles, sufficiently sophisticated personal access control, and asufficiently sophisticated network broker. The present scheme combinesall of these features, all of which are required for effective socialnetworking.

For example, the present scheme allows for the creation and maintenanceof rich profiles (of users and their contacts) that can include detaileddata on professional capabilities, history and accomplishments, goals,current projects, and professional networks, and also information aboutpersonal background, interests, values, goals and networks. Makingsuccessful matches often requires both personal and professionalcompatibility and high degrees of trust. Tools that lack rich profilesusually provide poor matches and require too much work, and risk, fromthe users to do extensive additional evaluation. Thus, by providing forthe rich profiles used in embodiments of the present invention, thenetwork broker 38 is afforded the opportunity to make meaningfulmatches.

The present scheme also includes a method for profiling personalnetworks that is used to guide the network broker 38 in making accuratematches even when the user has not yet entered specific contacts.Profiling a person's networks gives the present network broker 38 theability to find likely connectors to targets, even when the targetsthemselves are not yet listed in the system (i.e., in any user databases28 or any databases 42 maintained at the servers 14, 16). Profiling aperson's networks also gives users considerably more information thatthey will need to evaluate matches that are returned. Knowing what kindsof networks a person has, or is a party to, is often as important asknowing what kinds of capabilities or interests they have. Thus, thebroker is a network agent that emulates the function of a human brokernegotiating between users' personal search and access agents.

d. Verification Agent and Network

Verification agent 40 is a network agent that authenticates and verifiesinformation users have recorded in their profiles. This agent may workin conjunction with third-party systems such as those availablefrom/through TRUSTe of San Jose, Calif. or US Search of Los Angeles,Calif.. The verification agent 40 should respond to any updated verifierinformation sent by a client 12. For example, the agent may send anemail message to each verifier listed by a user, asking the verifier toconfirm the user-supplied information to be verified. The verificationagent 40 may also receive replies to these messages and evaluate them.Finally, the verification agent 40 may place a “verification stamp” in asection of the requesting user's profile containing the results of theevaluation. This verification stamp should be editable only by theverification agent 40 and not by the user or any other entity orapplication.

The concept of the verification agent 40 can be explained with referenceto the following: Virtually every professional in the world uses aresume or curriculum vitae to profile his or her capabilities and tolist references. Many professionals and employers are also now using Webservices to post and locate resumes. Currently, individuals often listthree or more references on their resume and any prospective employer orclient who wants to evaluate the resume must personally call eachreference and do other forms of due-diligence. Further, each of thereferees listed has to give the same (or substantially similar)evaluation to each organization that is checking references in order tobe of any value. The present verification agent 40 automates the processof reference checking to eliminate the need for each employer orpotential client to call individual references and for each reference toprovide the same verification multiple times. In this system theverifier provides a verifying authority with a single verification,which then becomes accessible to any interested parties.

In one embodiment, users/subscribers enter their profiles into thesystem using the profile builder 22 in the fashion described above.Individual profiles may vary from a traditional resume to a rich profilegenerated using the client application 18. At the same time, these usersidentify people who can verify their profile (or resume) in general andalso, if desired, who can verify specific capabilities, accomplishments,or values. As indicated above, the server 14, 16 communicates with theseverifiers by email or other means and ask them to verify the selectedprofile or profile sections. The server 14, 16 receives and evaluatesresponses from verifiers, and records the results in the verificationsection of the user's profile, which can only be edited by theverification agent 40.

Thus, when other users—and their agents—want to evaluate a prospectiveconnection, they may access verification information for the individualor company being evaluated. At minimum they can access a verificationrating. If the user's access agent 24 grants them additional access theywill be able to access more details of the verification. Users are ableto link their profiles to multiple verifying and connecting servers.Profiles are thus fully portable, and are not locked in to a single Website or organization.

B. An Example

With the above background, it seems now appropriate to explain furtherdetails of the present brokering scheme by presenting an example of howit might be used. In the following scenario, a user, Julia, needs tomake new contacts to help with a project; her problem is how to makethose contacts. As explained above with reference to FIG. 3, making theright new people connections involves three basic steps, each sometimesmore difficult than the prior one:

-   -   1) Getting a list of candidates.    -   2) Selecting the most qualified candidates—the ones with        capabilities and experience most finely tuned to the user's        needs (referred to herein as targets).    -   3) Getting a target's attention.

The first step (assembling a list of candidates) may be done readilywith a good directory or database; but that is about where such toolsend. The present brokering scheme addresses the more difficult steps.Assume our exemplary user, Julia, is a senior consultant in a mid-sizedconsulting firm in New York. The company has offices in Chicago and LosAngeles, and close alliances with other companies in other cities. Juliahas targeted as a prospect an international company that she had neverdealt with before. To make any progress, she knows she needs access tothat potential client in the form of a high level introduction, andprobably also some inside information about the prospect's needs forservices. She had sent a message and some promotional material and madea follow-up call to the prospect, but the logical contact there wasoverwhelmed with work and other requests for his attention. He took asuperficial look at her materials, said “Sorry, I'm too busy torespond.” and then did not want to talk anymore.

Prior to the present brokering system, Julia may have been at a loss forfurther solutions to penetrate the prospective client. At best, heroption might have been to go through her address book and find peopleshe knew who might give her a lead, call each of them in turn, each timeexplaining her needs, and then follow-up on any leads, which mightgenerate other leads, as well as many blind alleys. Sending a broadcastemail or posting a message on the company's discussion server might havehelped, but too often such attempted solutions either return littleinformation, or leads that do not really match a searcher's presentneeds.

With the present brokering scheme, however, Julia can explain her needsonce (to her personal search agent 26) and then get the best leadsavailable, without depending on getting her colleagues' attention orfull understanding of what she was looking for. If just one of theindividuals in the company's alliance network has a good connection toJulia's potential client, the present brokering scheme offers anexcellent chance of finding it.

Assume for purposes of this example that Julia's company's network hadonly recently deployed the present brokering system, so people withinthe company may still be adding information and contacts. Fortunately,the present system does not require that all members of a network beequally thorough in entering information. In this case, suppose that 3/4of the company's workforce had at least profiled themselves and theirnetworks and entered a few specific contacts. This may lead to, say,10,000 contacts in the network, of which perhaps some 8,000 or so may beunduplicated.

This is not a vast number of contacts, however, as more and more membersof the company enter their information this number will grow. Further,extended networks may also be included to encompass outside contactlists as well. As a result, a total number of contacts in an extendednetwork could easily exceed 500,000 or more, with the potential to groweven larger. Nevertheless, even the 8000 unduplicated, high value, highaccess contacts is substantial material for the present brokering schemeto work with, especially since the network profiles contributed byparticipating members also provide considerable information needed topoint to likely connectors to most targets. To perform her search, Julianeed only perform some or all of the following steps:

-   -   1. Enter a summary description of her search (i.e., who/what she        wants to connect with, for what purpose, etc.).    -   2. Profile the target. In this case Julia had the target's name        (her prospective client company) and may also enter a profile        including other important criteria: location, industry, specific        type of company and products.    -   3. Profile particular target contacts. Here, names of people,        roles, and other factors like professional interests that would        increase the likelihood of a good match to a person inside of        the target company should be provided.    -   4. Profile likely connectors to the target. For example,        specific or general types of members of the target's network:        clients, suppliers, partners, advisors, or other associates.    -   5. Indicate level and types of connection/verification desired.        In this case Julia may specify that she wants only close,        trusted contacts, and a maximum of two levels of connections.    -   6. Specify desired results: Julia may want both connectors to        this target as well as to other potential targets.    -   7. Launch the search (and, optionally, also save it for future        use in similar situations).        The brokering scheme may then implement the search on the        alliance network server 14, 16.

From this search, assume the following results were obtained (again,these are only examples of the types of results that may be provided bythe present brokering scheme):

-   -   1. Actual connectors to this target. Jane Adams, Chicago Office,        was identified as having a close connection to a Vice President        in the target organization.    -   2. Likely connectors to this or similar targets. Names of four        people in the network who have close contacts in this industry        and with this type of company, or with likely clients of this        type of company.    -   3. Messages from connectors. “Call Jane before you call her        contact.” Presumably, Julia will be quite happy with these        results, especially since developing this list did not take that        much of her (or anyone else's) time. With these results she        could now make just a few phone calls to exactly the right        people.

C. Use Cases

Although the above example of a user, Julia, searching for a contactprovided some details of how the present brokering system operates, amore general discussion of the search process may also be helpful. Thesearch agent 26 may present a graphical user interface 52 such as thatshown in FIG. 4. Of course, this illustration is only one example of auser interface and many other variants may be used. The precise layoutof the user interface is not critical to the present invention. Withsuch a user interface as part of their individual client applications18, users can enter plain language descriptions (as opposed to complexSQL (structured query language) or other database-specific descriptors)of their search. This can be used for a human readable description ofthe search by prospective targets, connectors, or human brokers helpingwith the process. In some embodiments, machine parsing and comprehensionof these search terms may be provided.

Users may also enter a pre-selected category describing the search byspecifying a general search objective, e.g., “Find Partners” or “OfferServices”, or “Exchange Ideas”. These categories can be used to helpoptimize search results and also to group searches for refining searchstrategies, and to retrieve stored searches. In this example, the searchtype is specified using an appropriate field 54 as a search for abusiness or a professional. The objective field 56 indicates that thepurpose of the search is to find a consultant and a description field 58allows the user to enter a rich, textual description of her search.Notice that this rich description need only be entered once during thesearch process, and need not be repeated numerous times as might be thecase if a user were to perform the type of manual search describedabove.

In addition, to this textual search description, users are prompted fordetailed search criteria of both their targets and, optionally, likelyconnectors to those targets. Such criteria may be entered in a searchcriteria field 60, thus allowing the user to profile the targetorganization and/or person to specify the skills, capabilities,compensation requirements, and values that are being sought. Theinterface for specifying such information may include a place toindicate the relative importance or weight of any profile criteriaspecified—e.g., required, very important, important, etc. and anyBoolean (e.g., AND, OR, etc.) connectors for those criteria. Asindicated, users may also profile likely connectors to the target. Thisis optional but can be important if the type of connection to the targetis important, for example, if the user wants a trusted recommendationand introduction to the target

Some embodiments of the search agent 26 may include a search profilingagent that may help the user specify the kinds of profile informationthat are most likely to result in matches for the desired searchobjective. For example, the profiling agent may be able to recommendwhat type of connectors to look for, or what kinds of information thetarget is likely to need in order to respond. If the user is in a hurryand leaves out important sections, the search profiling agent may givethe user reasons for completing those sections and ask them to do so.

The extent of the search may be indicated using a search extent field62. Some searches may have no limits, while others may be directed tojust local or other contact groups. For example, users may specify howmany levels of contacts a search should return hits for. This is oftenan important aspect of human-brokered searches for it is unlikely that auser will want to contact a target with only a tenuous connection to theuser.

As shown in FIG. 5, verification parameters, if any exist, may also bespecified. The verification instructions will help the broker agent 38plan its search path (i.e., does the user want to limit the search to:

-   -   His/Her own closest connections?    -   The closest connections of his/her closest connections?    -   The people in his/her organization?    -   People in allied organizations?    -   Connections of people in allied organizations?    -   The global universe accessible by the brokering system?    -   Only verified or certified targets?    -   etc.        Through a series of menu options 64, these and other questions        (e.g., level of trust in the connection, etc.) may be asked and        answered, thus formulating a complex search procedure using a        straightforward user interface.

A search may also be initiated or saved for later use whenever the useradds or modifies his/her own profile information regarding projects,goals, or interests. Projects especially relate to searches if theproject has requirements that are not yet filled. After entering projectinformation (see, e.g., the user interface screen 66 of FIG. 6), theuser may be prompted, “Do you want to start a search for projectrequirements?” If yes, the project specifications will be used by theagent as the basis of a search and the user may be prompted foradditional instructions needed to carry out the search. Likewise theuser can initiate a search for people who share common interests,values, goals, or background.

Ultimately, a user launches the search. The search is preferably firstlaunched on the user's local system 12 to look for matches or likelyconnectors among the user's own locally listed contacts (includinglocally listed contacts of other members of the user's organization);next the search is uploaded to the server 14, 16 for a more extendedsearch. An example of a user's personal contact list 68 is shown in FIG.7.

The server 14, 16 receives search instructions from a client 12 andinstantiates a broker agent 38 to carry out the search. The broker agent38 receives search parameters (e.g., through its interface to theapplication server 32) and responds with search results. An example of asearch result screen 70 is shown in FIG. 8.

To perform the search, the broker agent 38 parses the search requestinto component parameters thereof and conducts a search in theUserProfiles portion of database 42 to try to find best matches. If thesearch parameters include connection types and weights, then the brokeragent 38 will seek connection paths that match the connectionparameters. This may include strategies such as: starting with targetsand working backward to try to connect to the searcher, via likelyconnectors; or starting with the searcher's contacts and working outwardto try to connect to targets or other likely connectors. Searchingproceeds to the levels defined by the search extents entered by the user(or to a default level if none were entered).

Once matches to search parameters are found and evaluated, the brokeragent 38 will start with the best targets and likely connectors andnegotiate with the target's access agent 36 for release of informationabout the target to the searcher. The target's access agent 36 willevaluate information which the searcher has allowed the broker agent 38to reveal in order to determine what level of access to assign to thesearcher's request. Based on the access code assigned to the searcher bythe access, the access will give the broker agent 38 permission toreport back to the searcher any requested information that has asecurity code equal to or lower than the searcher's assigned accesscode. In some cases this will be all information requested, in othercases it may include some information but not include specific contactinformation (name, etc.), in still other cases it may be no information.

If the access agent 36 is interested in the request but cannot assign ahigh enough access code to the searcher to release the informationrequested, the access agent 36 may (if previously instructed by itsowner) ask the broker agent 38 to query the searcher'for the additionalinformation that it needs to release the requested information. Thisrequest for more information will then be relayed to the searcher'sserver-side access agent, which will decide what to do with the request.For example, the searcher's server-side access agent may a) supply theinformation, b) deny the information, c) send the request back to thesearcher's client 12 to request action of the searcher's client-sideaccess agent 24 or directly of the searcher him/her-self. Suchadditional information supplied by the searcher may then be relayed backto the target's gatekeeper 36 for re-evaluation of the access request.Thus, a system of progressive disclosures of personal information may beused.

If the target's access agent 36 responds negatively (or sub-optimally)to a searcher's request for information, the broker agent 38 may thenattempt to find a trusted connection path (i.e., a path through atrusted contact of the target to the searcher) between the searcher andthe target (if it has not already done so). If a trusted connection pathis found, then the broker agent 38 will submit this additionalinformation to the target's access agent 36 to try to improve the accesscode assigned. When the broker agent 38 is looking for likely connectorsto targets, the broker agent 38 will be asking the connector's accessagent for permission to search the connector's contacts for targets orother likely connectors. This will allow the broker agent 38 to conductextended searches through multiple “degrees” of connection.

Once results are obtained from target or connector access agents 36, thebroker agent 38 will collect all results obtained, rank them (e.g., bycorrespondence to the weighted search criteria, degree of connection,etc.) and report them back to the searcher. One example of a searchresult report screen 70 is shown in FIG. 8. From this report, a user mayexamine detailed information regarding the target. For example, byselecting one of the targets on the search result list, the user may bepresented with a detailed view 72 (see FIG. 9) of that target'sinformation (i.e., the portion of the target's profile that was releasedby the target's access agent 36). In this example, the detailed view 72includes not only information regarding the target, but also informationregarding the connections to the target (which are often important inevaluating a target's suitability). The detailed view screen 72 may alsoprovide for sending messages to the target and/or the connector(s) aswell as other functions (e.g., the ability to add the target to thesearcher's own contact list, etc.).

In other embodiments, the report back to the searcher may include someor all of the following:

Direct Hits

-   -   1. A ranked list of “direct hits” (people, organizations,        information that matches the search profile, etc.).    -   2. Hyperlinks or other links to all relevant evaluation        information that is accessible to the searcher (e.g., profiles        of targets and connectors, details regarding the match, etc.).

Connectors

-   -   1. A ranked list of potential connectors to the target. The        highest ranked connectors will usually be people who are most        likely to have the strongest connections to direct hits and who        also have strongest connections to the searcher.    -   2. Hyperlinks or other links to all relevant evaluation        information about connectors that is accessible to the searcher.

Messages and Requests

-   -   1. Messages from potential targets or connectors, such as,        “Please contact me personally for more information—or for a        personal introduction.”    -   2. Requests from potential targets or connectors asking for more        information required to permit more complete access

D. Search Strategies

Having now been introduced to basic search procedures, some advancedsearch strategies and techniques may be discussed. Consider first asearch for targets, not considering trust links. Users might adopt astrategy wherein searches are based on each or selected searchcriterion. For example, one might narrow an overall search by searchingfirst on required criteria, such as location, capabilities, or otherparameters. Alternatively, or in addition, one might search in thecapability section of other users' profiles to match on desiredcapabilities. Narrow searches may also be conducted by broad industryand function groups and/or in other users' network profiles section tomatch on type of clients, and other network types. Likewise, wherecertain educational requirements are important in the target, one mightsearch in a history/education section of a profile to match on educationcriteria. Searches in interests/values sections may be used to match onthese criteria, and so on.

Searches may include both searches of structured fields and indexed textsearches in text fields or “tagged” text files or tagged sections oftext files (e.g., sections of resume text files that are tagged as“capabilities”, etc.). Some text fields used in profiles may containunstructured text fields, however the scope of these fields should bedefined, such as “Current Skills.” They may also be defined byassociation with structured fields indicating, for example, particularindustries or functions.

Once such searches are run, users should evaluate and record thestrength of match for each criteria. Matches may then be grouped bytarget (organization or person) and combined into one “record” or objectper target, giving the strength of match on each criterion. (Note, someor all of these steps may, of course, be combined in one operation pertarget.) Finally, an overall match ranking should be assigned.

Next, one should discover trust links to targets and likely connectors.This could be done as part of the above process if minimum trust linksare specified as part of the search requirements. However, even in thatcase it may be desirable to use the above search procedure (withoutregard for trust links) as a way to narrow the universe of possibletargets before the more resource intensive process of discovering trustlinks.

To work with trust links, one may start from the searcher and followlinks with minimum trust outward no more than x (say 3) degrees, or lessif fewer degrees are specified in the search parameters. Thereafter, onemay start from targets identified by the above search process and followminimum trust links outward the same number of degrees.

Note, these procedures will involve “extended searches” which mayrequire personal access agent (gatekeeper) approvals, i.e., to explorelinks of a connector. This may be required because in order to releaseinformation on link paths, the broker agent 38 will ultimately need eachconnector's access agent approval for release of this information. Thus,one can ignore link owners who do not want to participate in an extendedsearch. In some cases, it may be that the link owner has not gottenaround to including the link requestor in his/her access instructions orthat his/her access instructions are not very complete. In such cases,it may be preferable to do the extended search first and then askpermission. Asking permission may involve getting the user's attention,which could take time and delay or fragment the search process.

After performing the two branches of the extended searches, one thenlooks for matches between potential link connectors. Any matches can beranked according to search path link criteria, e.g., strongest links,fewest degrees, etc. When searching for likely connectors, one cansearch all links available, if system resources and time permit. Or onecan constrain a search by using a refined “likely connector” strategythat takes into consideration programmed and learned information aboutlikely connectors, plus consultations of network profile sections ofpotential connector profiles. These extended link search strategies willnot only locate any known link paths in the system, but will also beused to identify “likely connectors” that do not directly link to atarget. Such likely connectors may indeed link to targets, but availablelinking information may be missing. Or, likely connectors may link totargets who are not actual users in the system. These connectors canthen be contacted by the searcher (if permitted by the connector'saccess agent) for help in making connections “outside” of the brokeringsystem.

When looking for likely connectors, some other possibilities are:

-   -   Look for likely connectors to identified targets.    -   Look for likely connectors to 1st and 2nd degree connectors to        target's 1st and 2nd degree connectors.    -   Look for likely connectors to the target profile.

Finally, the results may be assembled and evaluated based on the abovesearch processes. This procedure will combine weighted connectioncriteria with other target profile criteria. As stated above, this willbe useful even when weighted connections are not required in the searchparameters. By having information on weighted connections one isafforded added value in the search results—value that the searcher maynot have anticipated. Further, weighted connections, e.g., links oftrust, may prove valuable for getting a target's (or connector's) accessagent to release information to the searcher.

E. Algorithmic Details

The following section presents a object view of the above describedsearch process and is intended to more fully communicate to those ofordinary skill in the art an example of the algorithmic structure of anembodiment of the present invention. It is not intended that thisdescription be a fully coded version of a software application; rather,it is intended to highlight some of the important features of anembodiment of the present invention.

1. Object Model Overview:

Client application 18 contains (in addition to PersonalProfile, etc.,which are discussed above):

-   -   a. ClientSearchDeva—which receives search parameters through the        search agent user interface described above, conducts searches        on local database 28, and assembles SearchInstructions for        sending to server 14, 16.    -   b. InterfaceToServer—which sends and receives messages, objects        and data to the server 14, 16. This object interacts with the        search agent 26 and local database 28 and with other client        objects such as the ClientSearchDeva.

Application Server 32 contains (in addition to the objects noted above):

-   -   a. InterfaceToUser—which receives input from clients 12,        including searches, and sends results and messages to clients        12, including search results. In the case of an incoming search,        this object will send a message to the network broker 38 to        cause it to instantiate a new NetworkBroker object to carry out        the search.    -   b. NetworkBroker—this is a class of objects instantiated to        handle each search received. Thus, there may be multiple        NetworkBroker objects (i.e., network broker agents 38) active at        any given time.    -   c. SearchDatabase—containing temporarily stored or archived        searches and results.

NetworkBroker objects contain:

-   -   a. SearchInstructions (received from client 12 through        InterfaceToServer and copied to this new NetworkBroker object)    -   b. TargetFinder—will conduct a simple search to match queries        and find all possible targets. TargetFinder will create        BrokerResults data object(s), which are discussed below.    -   c. TargetEvaluator—an object that uses BrokerResults to        implement access deva instructions for each target found. It        modifies BrokerResults based on evaluation of access codes and        security codes to ensure privacy concerns and instructions are        addressed and implemented. It will also have other functions in        full searchers—e.g., evaluating and scoring weighted searches.        (Note—the TargetEvaluator may be implemented as multiple,        threaded TargetEvaluators, one for each target.)    -   d. BrokerResults—a data object (i.e., a private object only        known to NetworkBroker) that contains the results of a search.        It is not shared with a client application 18.    -   e. ResultsToSearcher—a data object returned to client        application 18 at the conclusion of a search.

2. Details of Objects and Behaviors

Client application 18 will, though the user interface associated withsearch agent 26, develop a search query. Thereafter, ClientSearchDeva (asystem interaction object in the client application 18) will assembleSearchInstructions for the query. The SearchInstructions may include oneor more of the following:

-   -   A Search Description (if provided by user).    -   A SearchID (if implemented).    -   An indication of the type of search (e.g., a browse query, or        anonymous, weighted search).    -   Query conditions to match.    -   An indication of whether the search request is local only or        also to be sent to server 14, 16. If sending the search request        to server 14, 16, whether to:        -   a) Send the instructions now and ask for an immediate search            while the client 12 is online.        -   b) Send the instructions now and notify the user when            results are found (useful where the user intends to be            off-line while search is being conducted).        -   c) Store the instructions and upload them when the user is            next online.        -   d) What data to return with results:            -   i) Send only target names and links to data on server                14, 16.            -   ii) Send names, links, and additional data:                -   Data matching query conditions.                -   Email, phone, address, etc.                -   Other profile data as requested.                    The Search Instructions may then be executed to find                    targets in local database 28 and/or the                    SearchInstructions may be provided to server 14, 16.

If the search is to be run at server 14, 16, then the InterfaceToClientwill receive and acknowledge the SearchInstructions and instantiate aNetworkBroker to carry out the search process on the server.NetworkBroker (i.e., an instance of the network broker agent 38 for aparticular search) will use TargetFinder to find targets among otherusers' profiles stored on or accessible to server 14, 16 or even otherservers in communication therewith. Targets are matches to the searchqueries and may include other users and/or those user's contacts.

If TargetFinder finds any matches among the other users' profiles, itwill add a Link ID to BrokerResults.TargetList. If targets are foundamong contacts of other users, TargetFinder adds a Link ID toBrokerResults.ContactList. Finally, if TargetFinder finds any connectormatches among users and/or contacts, it will add a Link ID toBrokerResults.ConnectorList. The BrokerResults lists are not shared withobjects outside of the NetworkBroker assigned to a particular search.This preserves the privacy that would be afforded by a human broker. TheTargetFinder object will thus include processes to read the SearchInstructions and perform the above steps, as well as data members ofBrokerResults (which will include the three lists, TargetList,ContactList, and Connector List).

TargetEvaluator will start with BrokerResults.TargetList, and for eachtarget user in the list will:

-   -   i. Create a target object in ResultsToSearcher.TargetList. This        will be the search result data object returned to the searcher's        client application 18.    -   ii. Check SecurityCodes for the requested data, e.g., name,        phone, email, location, data matching query, and any other        profile information requested.    -   iii. If all data requested is “Public” (i.e., a security code        that designates the information may be shared with anyone), this        data will be added to or associated with the corresponding        target in TargetList.    -   iv. If any data is not “Public”, TargetEvaluator will check for        the AccessCode assigned by the target (i.e., the actual user        represented by this entry in the TargetList) to the searcher.    -   v. If an AccessCode is not found for the searcher,        TargetEvaluator will, optionally, check for an AccessCode for        the searcher's organization (e.g., employer or membership        associations, etc.). Alternatively, or in addition,        TargetEvaluator may check to see if the searcher is a member of        one or more of the target's organization. If so, the searcher        may be assigned an AccessCode of the organization. Otherwise        TargetEvaluator may assign the searcher an AccessCode of        “Public” (i.e., the searcher will only be able to access Public        information of this target).

Note that the searcher's name and organization(s) may need to be part ofthe SearchInstructions in order to perform the above-described lookupsin the target's contact list. In some cases a more stringent way ofverifying that the searcher or searcher's organization matches a targetcontact may be needed. Note also that the target will not learn thesearcher's name for this procedure because the lookup is done by anetwork broker agent 38. However, in other embodiments targets may needto know when they have been browsed or searched plus any profileinformation the searcher wishes to share with targets, though notnecessarily including the name of the searcher if searcher wishes toremain anonymous.

Carrying on with the above functions performed by TargetEvaluator:

-   -   vi. Add SearcherAccessCode found or assigned to target in        TargetList. If no SearcherAccessCode found or assigned, set        SearcherAccessCode =null for this target.    -   vii. Add all data to target in ResultsToSearcher.TargetList        where SearcherAccessCode>=SecurityCode.    -   viii. If the target's name is not accessible (not “Public” or        has a SecurityCode higher than the AccessCode assigned to the        searcher) then substitute “Person N” (or another anonymous        identifier) for the target's name (where “N” is a sequence        number, like “A”, “B”, etc.) Optionally, a temporary Link ID        that will be stored in the TargetList may be created. The actual        Link ID should also be stored so that the broker agent 38 can        retrieve it when later given the temporary Link ID by the client        12.    -   ix. Repeat these steps for each target in ContactList and        ConnectorList. (If desired, find connectors.)

Once the NetworkBroker has completed this search and match process,InterfaceToUser may return ResultsToSearcher (containing SearchID,TargetList, ContactList and ConnectorList). In some embodiments,BrokerResults may be stored in memory (e.g., within database 42) while auser is online in order to respond to user requests to browse detail forparticular targets. In other embodiments, after the searcher goesoffline, BrokerResults may be stored along with an expiration date,after which it will be purged. BrokerResults contains target objectswhich contain: SearcherID, SearchID (matching the ID for the search onthe client application 18), Link ID to target (user or contact) onserver 14, 16, any temporary Link IDs sent with ResultsToSearcher andany SearcherAccessCode assigned by the target to the searcher.

Once the above transpires, client application 18, via InterfaceToServer,receives ResultsToSearcher as ResultsFromServer. Client application 18then matches the returned SearchID to any stored SearchIDs in database28. This will indicate which search the results are in response to,including whether results are for a browse (i.e., a general inquiry) ora search action so that client application 18 can implement thenecessary procedures.

For browse results from server 14, 16, if a query in the selectioncriteria table is the same as the query for the results (i.e., a matchexists between SearchID in a stored search request and the SearchID inResultsFromServer), then the results of the query are displayed in abrowse table. For example, a table such as that shown in FIG. 8 may beused. If the user wants to view details for a result, then afterselecting the target of interest, a lookup may be performed to locatethe user or contact in the local database 28 or remote database 41, asappropriate, and the accessible data displayed.

Optionally, if a query in the selection criteria table is no longer thesame as the query for the results, then a message may be displayedinforming the user that results for the query (using the querydescription if available) have been received from the server, and askingwhether the user wishes to view the results now or later. If now, thenthe browse table may be cleared and the new query displayed in theselection criteria table and “contacts of” list, and results may bedisplayed in a contact browse table.

Thus, a scheme for brokering human networks over a computer network thatmay use a client-server paradigm has been described. Although discussedwith reference to certain illustrated embodiments, it should berecognized that the present invention is only to be measured in terms ofthe claims, which follow.

1. A computer-implemented method, comprising: responsive to receipt of asearch query and accompanying search criteria at a server of a socialnetworking system, said server having a processor and a memory coupledthereto, searching a social network of a user of the social networkingsystem for matches to said search query, said matches includingpotential targets satisfying the search query and one or more of thesearch criteria defined for the search; for each respective one of thepotential targets, determining whether profile access control criteriaestablished by the respective potential targets are met; and for thoserespective ones of the potential targets whose profile access controlcriteria are met, reporting said respective potential targets to theuser as matches for the search query, said reporting comprisingreturning a list of said potential targets to a client communicativelycoupled to said server, wherein the social network of the user comprisespersons in one or more chains of person-to-person relationshipsconnecting the searcher and the potential targets, and the profileaccess control criteria define attributes of personal profiles of saidpersons and said persons' contacts that may be shared with others. 2.The computer-implemented method of claim 1, wherein one attributedefined by the access control criteria establishes connection strengthsfor person-to-person relationships and said search criteria define aminimum connection strength for a person-to-person relationships that isrequired between persons forming said one or more chains ofperson-to-person relationships.
 3. The computer-implemented method ofclaim 1, wherein one attribute defined by the access control criteriaestablishes a connection distance between a respective potential targetand the searcher and said search criteria define a maximum connectiondistance for a chain of person-to-person relationships between thesearcher and a potential target that is acceptable.
 4. Thecomputer-implemented method of claim 1, wherein the access controlcriteria comprise hierarchical security levels for personal information.5. The computer-implemented method of claim 1, wherein reporting saidrespective potential targets further comprises autonomously brokeringconnections between the searcher and one or more of the respectivepotential targets, so as to provide information regarding individuals inone or more of the chains of person-to-person relationships connectingthe searcher and the one or more of the respective potential targets, byautonomously determining whether or not a connecting individual in aninter-personal connection path from the searcher to a respectivepotential target is a member of a group to which a succeeding connectorin the inter-personal connection path has granted access to thesucceeding connector's contact information.
 6. The computer-implementedmethod of claim I, wherein reporting said respective potential targetsfurther comprises autonomously brokering connections between thesearcher and one or more of the respective potential targets, so as toprovide information regarding individuals in one or more of the chainsof person-to-person relationships connecting the searcher and the one ormore of the respective potential targets, by brokering, in accordancewith one or more instructions supplied by any one or more connectingindividuals in an inter-personal connection path from the searcher to arespective potential target, where such instructions refer to attributesof relationships between any two or more persons in said chains ofperson-to-person relationships, said attributes of relationshipsincluding one or more of the following: levels of trust, levels ofaccess, levels of privacy, levels of security, length of relationship,frequency of interaction, closeness of relationship, and nature ofrelationship.
 7. The computer-implemented method of claim 1, whereinsaid attributes of personal profiles include access control provisionsof organizations to which such persons belong.
 8. Thecomputer-implemented method of claim 1, wherein a respective potentialtarget comprises an individual who has previously made a request for thesearcher's attention.
 9. The computer-implemented method of claim 1,further comprising identifying, as part of said reporting, eachrespective potential target along with an indication of which of theaccompanying search criteria are satisfied with respect to therespective potential target.